package Sever端;

import java.sql.*;

public class MyConSQL {
    private static final String dbDriver = "com.mysql.cj.jdbc.Driver";// 设置连接MySQL数据库的驱动
    // 连接MySQL数据库的路径(注意：这里的数据库db_lottery.sql必须已经被导入MYSQL了）
    private static final String URL = "jdbc:mysql://localhost:3306/chatdb";
    private static final String USERNAME = "root";// 设置连接MySQL数据库的用户名
    private static final String PASSWORD = "Wk0515ab03.";// 设置连接MySQL数据库的密码
    private static Connection con;// 设置初始化连接MySQL数据库的对象

    public MyConSQL() {// 连接MySQL数据库的构造
        // 加载MySQL数据库的驱
        try {
            Class.forName(dbDriver);
        } catch (ClassNotFoundException e) {
            System.out.println("数据库加载失败");
            e.printStackTrace();
        }
    }

    public boolean creatConnection() {// 建立MySQL数据库的连接
        // 根据连接MySQL数据库的路径、用户名、密码连接MySQL数据库
        try {
            con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return true;
    }

    public void closeConnection() {// 关闭MySQL数据库的连接
        if (con != null) {// 判断Connection对象是否为空
            // 关闭MySQL数据库连接
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            // 重置Connection对象为空
            finally {
                con = null;
            }
        }
    }

    public ResultSet getResult(String sql) {//执行指令
        System.out.println("指令：" + sql);
        Statement statement = null;
        if (con == null) {
            creatConnection();
        }
        try {
            statement = con.createStatement();
            ResultSet rs = statement.executeQuery(sql);
            return rs;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    public boolean Update(String sql) {
        System.out.println("指令：" + sql);
        if (con == null) {
            creatConnection();
        }
        try {
            Statement statement = con.createStatement();
            statement.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }
}

